home *** CD-ROM | disk | FTP | other *** search
/ Wonky Flux Batch 2019 02 / Wonky_Flux_Batch_2019-02.zip / Wonky Flux Batch 2019-02 / 089 - Misc Stuff - PD.dsk / SCRAMBLE.S < prev    next >
Text File  |  2019-02-17  |  2KB  |  62 lines

  1. ********************************
  2. *                              *
  3. *           SCRAMBLE           *
  4. *                              *
  5. * An example of the use of the *
  6. * USR opcode.     1/11/82      *
  7. *                              *
  8. ********************************
  9. *                              *
  10. * Assemble this and save it as *
  11. * SCRAMBLE.  To use it, just   *
  12. * BRUN SCRAMBLE before doing   *
  13. * the assembly of your program *
  14. *                              *
  15. * Then, for example,           *
  16. *                              *
  17. *        USR "WORD"            *
  18. *                              *
  19. * will place a scrambled form  *
  20. * of "WORD" in the object code *
  21. * which can be unscrambled by  *
  22. * EORing it with #$15 (to get  *
  23. * negative ASCII).             *
  24. *                              *
  25. ********************************
  26.  
  27. USRADRS   = $B6DA
  28. PUTBYTE   = $E5F6
  29. EVAL      = $E5F9
  30. WORKSP    = $280
  31. OPNDLEN   = $BB
  32.  
  33.           ORG $890
  34.  
  35.           LDA #$4C
  36.           STA USRADRS
  37.           LDA #SCRAMBLE
  38.           STA USRADRS+1
  39.           LDA #>SCRAMBLE
  40.           STA USRADRS+2
  41.           RTS
  42.  
  43.           ERR SCRAMBLE-$8A0
  44.  
  45. SCRAMBLE  INY
  46.           CPY OPNDLEN
  47.           BGE BADOPND
  48.           LDA WORKSP,Y
  49.           CMP WORKSP     ;2nd delimiter?
  50.           BEQ DONE
  51.           EOR #$95       ;Scramble it
  52.           JSR PUTBYTE    ;Put it in obj
  53.           BNE SCRAMBLE   ;Always taken
  54. DONE      RTS
  55.  
  56. BADOPND   LDX #0
  57.           LDA #"""       ;Invalid in expression
  58.           STA WORKSP
  59.           JMP EVAL       ;Force an error
  60.  
  61.           ERR *-1/$900
  62.